home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
programs
/
host22.zip
/
HOST.DOC
next >
Wrap
Text File
|
1992-04-04
|
37KB
|
798 lines
HOST 2.2
Miniature BBS host program
by
Bob Eyer
[73230,2620]
April 4, 1992
──────────────── SEE SHAREWARE NOTICE BELOW ──────────────────────
For a fee, the author will modify program for custom
applications.
══════════════════════ FEATURES OF HOST ══════════════════════════
- Uses very little disk space, and less than 50K memory
- Can be run 'right out of the box' with no configuration at all
- Two types of local Sysop logon
- ESC key abort to terminate online caller
- User specifiable rings to answer on
- Ringback option - user selectable wait time
- Chat
- Messaging
- File transfer, typing files
- Sysop shell to DOS - Available only to registered users
- Caller log inspection for Sysop - Registered users only
- Expert/novice menu and prompt modes
- Automatic wipe minor prompts at or above 1200 baud
- Ctrl-K/X (abort)
- Selectable timelimit for non-Sysop callers
- 2-minute prompt inactivity logoff
- RTS/CTS hardware handshaking for maximum speed
- In event string pool problems, ejects to DOS with
error level 2, for batch file reprocessing.
═════════════════════════════════════════════════════════════════
Syntax
------
HOST [port baud] [LOCAL BUL]
port The number of the communications port to be made active.
HOST is capable of identifying ports 1-4, without
supplementary specification of IRQ lines and addresses.
If not mentioned, HOST defaults to 1.
baud The baud rate at which to open the communications port.
If not mentioned, HOST defaults to 9600. Valid baud
rates are 300, 1200, 2400, 9600, and 19200.
If 19200 is selected, HOST will assume the modem is a
USRobotics Courier HST or Dual Standard, and will send
&B1 &N8 to the modem to fix the modem to the DTE (the
communications port), unless the user overrides by
specifying a new value of FIXED in the HOST.CFG file (see
below). In such case, remote must call at same speed.
Under such conditions, the modem/DTE link will operate at
14.4k baud. Caveat: HOST's default response to a 19200
fixed baud setting assumes that the default NRAM1 setting
contains either &M4 or &M5. USR fixed baud settings
require operation at least at level 4.
At 9600 or below, HOST sends &B0, &M4, and &N0 to the
modem, so that it will follow the caller's connect rate,
unless the user overrides the NRAM settings in HOST.CFG.
HOST does not, in its default configuration, save
commands to the modem's NRAM, but resets modem settings
to their previous states on exit. As a result, it is not
necessary to reconfigure your dialling program for
dialling out, after using HOST - unless you add &W to new
values for NRAM1 or NRAM2.
LOCAL A commandline keyword which specifies that HOST is to be
run without communicating with the modem at all, for test
or illustration purposes.
The user may see how HOST works for the first time and
without a modem, just by entering the command
HOST LOCAL
The host may also be run by the Sysop in local mode by
pressing the Esc key after HOST is in WAITING FOR RING
mode. However, this mode does involve modem
communications, and will abort if a modem is not properly
connected to your selected communications port.
BUL A commandline keyword which specifies that the HOST.MSG
file is to be displayed as a bulletin for the caller
before he or she reaches the Main Menu. Useful primarily
where the Sysop anticipates a particular caller and wants
to display some instructions which might be needed by his
caller.
Commandline keywords must appear AFTER the numeric parameters,
port and baud, where listed at all.
Example: HOST
will open COM1 at 9600 baud, No parity, 8 bits, 1 stop bit, and
will function so as to enable callers to connect. The caller will
not see HOST.MSG before the Main Menu, since BUL is not mentioned.
'HOST 2400' opens COM1 at 2400 baud.
'HOST 3' opens COM3 at 9600 baud, if COM3 exists.
Discussion
----------
I wrote this program chiefly as a very small BBS for occasional
use, particularly for situations in which someone wants a file
from me, but doesn't want to go the roundabout route of having me
post on a large BBS for subsequent download. This procedure has
pitfalls - such as whether I and my party are members of the same
BBS, and whether that facility offers private file transfers.
The largest problem with most host programs in occasional use is
that they require the user to refresh his memory on how to
configure them. This is often a colossal waste of time, and
impractical for occasional use.
Another problem is disk space. Keeping a fully configured BBS
system on one's hard drive can mean wasting 2 or 3 megabytes of
space or more. This is inappropriate for software which is
intended to be used only once in a while.
RBBS, PCBoard, Wildcat, and other programs have long been in the
"large host" category; and so they just don't fill the need.
Minihost, now known as Maxihost, was originally designed for
occasional use, but has long since developed into a host of the
medium to large variety, intended for 24 hour operation.
There are a number of other small hosts, such as TinyHost and
JaxHost, which aim at the needs of the occasional user.
However, even these programs are large compared to HOST, and still
require the user to check through the configuration about files,
directories, user names, passwords, security levels, and so forth.
All this stuff is liable to be inappropriate and forgotten, by
the time the software is used on the next occasion.
In addition, most of the top dialling programs, such as TELIX,
BOYAN, and QMODEM, provide a script language so that the user may
write his own host. However, the disadvantage of this approach is
that it is generally unsuitable for users who don't wish to learn
script languages.
In contrast to all these programs, HOST 2.2 can be run IMMEDIATELY
by any owner of a low speed Hayes-compatible modem, or a high
speed USRobotics Courier HST or Dual Standard, with assurance of
connect on the first ring, unless the user specifies rings to
answer on and/or ringback mode (see below about HOST.CFG).
There are only a few things to remember:
- You must know which port your modem is connected to, and the
maximum speed. If different from HOST's defaults, use the ones
that apply. Do NOT enter a baud rate on the command line which
exceeds the maximum rating of your installed modem. See Syntax
above.
- If you don't want to specify your file transfer directory in
HOST.CFG, HOST will assume that it is the root directory of the
current drive. Files visible to the caller must be either of
reset or archive attribute status. Files which are read-only,
hidden, or system will not be displayed.
- If available, HOST uses three files which should be kept in a
separate directory: HOST.CFG, HOST.LOG, and HOST.MSG. Each of
these files is an ASCII text file, intelligible to any text
editor or wordprocessor. The LOG and MSG files are
automatically generated by HOST, and require no maintenance.
The HOST.CFG file will probably be most important in specifying
your secret code name, which gives you alone Sysop access to the
DOS SHELL and the Inspect callers-log function. See below about
how to set up a CFG file.
Where a CFG file is not specified, HOST will assume all users
have the same security, and no one will get access to DOS or the
caller log.
- HOST does not have any internal protocols for file transfer, but
takes for granted that the user has a registered copy of Chuck
Forsberg's DSZ.COM, located somewhere in the DOS path. The four
protocols which HOST presents as choices all assume access to
DSZ. HOST shells out to DSZ and automatically sets up the DSZ
commandline, conformable to the user's selected option, and
DSZ's syntax. File transfer does not involve setting up
special batch files.
In the event DSZ.COM or DSZ.EXE is not found in the DOS path (or
in HOST's local directory), HOST simply returns to the Main menu
without apparent effect to a caller. However, at the host end,
the message 'Bad command or filename' will be displayed by DOS
in such an event.
- HOST does not check caller names against a user list. Everyone
except the Sysop has the same security level. Since HOST is
designed only to be run occasionally, there is no need for a
userlist. However, HOST does write out caller names to a log
file called HOST.LOG. The dates and times, together with the
name given by the caller should generally be more than
sufficient for occasional use.
In addition, HOST's monitoring function will write to HOST.LOG a
short descriptions of the caller's activities.
══════════════════════════════════════════════════════════════════
NOTE: You can run HOST IMMEDIATELY at the root directory WITHOUT
ANY CONFIGURATION AT ALL, and, if the files needed for transfer
are there, your caller should be able to pick them up.
══════════════════════════════════════════════════════════════════
FINE TUNING - HOST.CFG
----------------------
This file has a very simple structure. It is based on the use of
11 keywords: SYSOP, LOGON, DELAY, LIMIT, RBACK, RINGS, FPATH,
NRAM1, NRAM2, MINIT, and FIXED. The space character is used to
associate each keyword with its intended value. All values are
read as strings, so don't use quotes. The order in which these
variables are defined in HOST.CFG is immaterial; HOST will figure
out which is which.
SYSOP - Your secret name, as the Sysop (no length limit).
The default is no Sysop name, and so no Sysop
privilege. If SYSOP is defined in HOST.CFG, then
the caller logging on with this name will have
access to the shell and user log functions
(available only to registered users).
LOGON - This is the message your caller will see first
after establishing connect with HOST. The default
is not to print a logon message at all.
FPATH - The drive-directory where file transfer takes
place. If not mentioned, this variable defaults
to '\' - that is, the root directory of the
current drive.
DELAY - The delay time, in seconds, between modem
commands. In command mode (when no caller is
online), instructions sent to the modem are
followed by responses from the modem. If commands
are sent too quickly, they won't be received,
since some of them may occur during the modem
reply. The default of HOST is 1 second, which
should generally be adequate to prevent this kind
of effect on USR Couriers. However, you may find
it necessary to set the DELAY at 2 or 3.
LIMIT - A non-Sysop caller's session time limit. HOST
prescribes no time limit for any person who logs
on with the Sysop's secret name (see above). All
other callers have a time limit assigned by LIMIT.
HOST's default is 20 (minutes).
RBACK - The number of seconds the host should wait before
recycling to receive the caller's second ring
sequence. If this number is a positive integer,
ringback mode is automatically assumed by HOST.
HOST does not make any use of hardware modem
ringback technology, but, instead, controls
ringback processing entirely from within HOST. As
a result, the user may define any kind of ringback
mode he wishes, with ringback wait (the minimum
interval between the caller's first and second
call) set anywhere between 10 and 32767 seconds.
Usually, the appropriate setting should be at
least 10 seconds. The standard length of the
telephone ring cycle is about 6 seconds; and a few
additional seconds are necessary to distinguish a
new ring cycle from merely the next one in the
same cycle.
Where RBACK is omitted or is non-positive, HOST
deactivates ring-back mode.
RINGS - The number of rings which must occur before HOST
will make connect with a caller. Again, HOST does
not make use of modem technology here but handles
the ring problem entirely at the software level.
Where RINGS is omitted or set to 0, HOST will
attempt a connect on detection of the leading edge
of the first ring (i.e. answer on "zero rings").
NRAM1, NRAM2, MINIT, and FIXED are modem initialisation
variables. You may see illustrations of these strings simply by
running
HOST LOCAL
They are summarised below the initial help screen.
All these initialisation strings have default values supplied by
HOST. But each may be varied by the user as experiment warrants,
by supplying the relevant variable and associated value in the
HOST.CFG file.
FIXED is the only initialisation variable that behaves differently
from the other three: The purpose of FIXED is to override the
other settings when 19200 is used on the HOST commandline. The
purpose here is to set up a USR Courier HST or Dual Standard to
receive fixed baud calls at 19200, so as to achieve throughput of
14400 baud. The supplied defaults should do this; but, if fine
tuning is necessary, the default value of FIXED can be made
subject to the user's own override values.
Sample HOST.CFG file:
--------------------
SYSOP DD334RTM_2
LOGON SAM'S PLACE
DELAY 2
LIMIT 30
In this example, the Sysop's secret name for logon purposes is
DD334RTM_2, the logon message will be SAM'S PLACE, the modem
command delay is set at 2 seconds, and non-Sysop callers will
receive a maximum of 30 minutes online.
The advantage of a program like HOST is that the user can park
HOST.EXE and HOST.DOC in his pathed \UTIL directory, and then run
the program from anywhere. For example, on some other drive, the
user may wish to keep a small subdirectory called \JOHN, for
communications with, say, John Somebody, who prefers to call at
19200 baud. The directory would contain a batch file which
automatically specifies the loading of HOST with the 19200
parameter, so that John can get 14.4k speed downloads. In
addition, all the control files will be written in that directory,
if the batch file is run from there.
Obviously other small directories could be set up as well.
The space and human memory saving advantage here is large. The
program, docs, and other small directories might occupy no more
than 60k. And very few details need be attended to, so as to make
HOST operational.
Use of the Shell function
-------------------------
There are two main reasons why a person running a BBS should never
provide general caller access to DOS through a shell or exit
function. (1) Any caller could do great damage to the software on
his or her computer, and (2) callers who are not knowledgeable on
the use of shells in communications environments could easily hang
up the operation of the BBS by doing something that would prevent
them from exiting out of DOS level. A few notes should be made
about this second danger.
(a) Normally, when BBS operators arrange for the use of a DOS
shell, they do it by having the BBS program specify a batch
file to execute the functions intended, and this batch file
will call some kind of watchdog utility which causes the
host computer to reboot in the event of a prematurely
dropped carrier.
The main reason for the watchdog utility is that, if
carrier is lost, the caller will be denied any further
control over processing. If no program is resident, which
can automatically restore the BBS, it will simply hang, and
no other user will be able to log on, until the condition
of the computer is fixed by the Sysop.
An arbitrary shell function for Sysops does not provide any
such utility; so if you call your own host and drop to DOS,
you could make a simple mistake and cause your system to
hang - unless you MANUALLY call a watchdog utility as soon
as you are at DOS level. Watchdog utilities do not,
however, work equally well on all types of computers - so
the risk of hang when drop to DOS occurs is still quite
substantial even for the Sysop.
(b) Certain keys, such as the backspace key, and perhaps even
the cursor keys, may cause infinite loops to develop at DOS
level, unless the codes for these keys are redefined. For
example, using ASCII 8 for the backspace key in a
communications shell often causes infinite looping
behaviour, which cannot be stopped. These kinds of keys
should be redefined by using your modem S-registers (the
backspace key is S5), or avoided altogether.
DON'T use any keys at DOS level, except the numbers and
letters of the alphabet. Any deviation from this rule
could cause your host computer to hang, while you are at
DOS level within a shell.
If you must use DOS while online, use it through an
applications program whose output is redirectable to a
communications port, and which itself has internal
carrier protection.
Direct access to DOS in a communications session is
strictly for techies only!
But, it is made available here, chiefly for the benefit of
knowledgeable users of communications programs who would
like to take advantage of all that free memory space
(generally, more than 500K) which HOST makes possible.
Noise
-----
Generally, when run on error-correcting modems like the line of US
Robotics Couriers, noise is rarely a serious problem. The problem
arises when a BBS is run in non-error correcting environments.
Any line noise is liable to cause communications to break down or
be seriously interrupted. HOST limits this problem by filtering
all strings transmitted through the echo function of prompts. In
particular, the filter passes only those characters whose ASCII
value is less than 127 at speeds lower than 9600 baud. At 9600
baud or above, HOST assumes the modem is of the error-correcting
variety, and so does no filtering. This filtering process applies
to all echoing to remote at opportunities for user input - for
example, in chat, or in message entry. It follows that, where
filtering is active, HOST does not permit remote upload of a
graphics message to the Enter Note function.
Errors
------
HOST 2.2 supports error detection, much of which is used for
internal reprocessing (such as error handling when the CTS line is
dropped), and is of no interest to the user. However, the
following errors have diagnostic importance:
- Modem not connected to port or modem turned off
This occurs when the modem status register has a value less than
16, or when the ring and carrier bits are simultaneously set.
Please let me know if your modem is otherwise operational, but
you cannot get past this message. HOST 2.2 will report to you
the MSR value on your screen at run time. I have tested HOST on
a number of different kinds of modems with successful results on
this error condition, but admit that I don't have exhaustive
information about all modems.
This error condition is an attempt to deal with a problem which
many communications programs simply ignore, with the result that
they simply hang the computer, if the modem is not connected or
electrically turned off.
- Illegal baud rate
If you select a baud rate not supported by HOST, this message
will occur, returning you to DOS. HOST will inform you what
baud rates are legal.
- Wrong port, wrong baud, or hardware problem
This message occurs if HOST encounters any error while opening
the communications port. For example, if you select 2 on the
commandline for the port, and your machine only has a
communications card that supports COM1:, this error will occur.
It may also occur if you have a hardware problem - for example,
if your communications card needs to be reseated on the
motherboard, or perhaps you should do a cold boot because of a
lost bit somewhere in RAM. Try rebooting if this message
occurs. If that doesn't work, open up your machine WITH POWER
OFF and try reseating your communications card. Of course, make
sure you're using the right port and baud on the commandline,
when the machine is afterwards TURNED ON and rebooted.
If all this fails to make HOST get past this message, you
probably have an electrically defective communications card.
- STRING SPACE CORRUPT; Please call back in about 20 seconds
This error may occur when HOST's string pool has become
corrupt. HOST automatically puts the phone line off-hook,
closes the communications port, and exits to DOS with DOS error
level 2, when this circumstance occurs. The appropriate action
is merely to start HOST again from DOS, and this can be arranged
automatically by making direct use of HOST's exit code.
Since HOST allocates far more space (16K) than it needs (about
4K), the user may never see this error occur. But, if HOST is
used as a 24-hour BBS, the activating batch file should take it
account, in order to avoid losing the host on rare occasions.
For example, the following statements in the activating batch
file would do the trick:
:START
HOST 2
IF ERRORLEVEL 2 GOTO START
In this case HOST's commandline indicates that the port is
number 2, and that the modem supports speeds up to 9600 (the
default if the baud rate is not specified).
LOGGING OFF AND RECYCLING
-------------------------
HOST 2.2 reports inter-session processing on the local screen as
it proceeds, so you can see where any error occurs.
One important problem that may develop, but for which HOST has no
error detection, occurs when a caller logs off but HOST does not
drop his carrier - thus forcing him to drop carrier at the other
end. This fault is due to the fact that the switches of the modem
which HOST is using are set to force the DTR line high at all
times.
HOST drops the caller's carrier by dropping the local DTR line; if
the host modem does not respond to this command, the remote caller
will still be online. The caller will see evidence of this
malfunction, by noting that his line was not dropped after he
logged off, and that he sees on his screen the message to put the
host line offhook (it won't really be offhook if the remote caller
sees that message). As a result, he'll have to drop his
own carrier manually.
Therefore, do NOT operate HOST on a modem configured to force DTR
high at all times. The 'force DTR high' switch should be turned
off.
In Closing
----------
Please feel free to offer any criticisms or suggestions you may
have; I can be reached at Compuserve [73230,2620].
- Regards, Bob
** SHAREWARE NOTICE **
This program is shareware: if you think it's a worthy addition to
your personal software, you should make a contribution to the
author. In return for your contribution you will receive the most
recent updates of the items mentioned in the list below.
Simply purchase a money order from your bank in the amount of $20
US made out to Bob Eyer and send with your return address to:
Bob Eyer
1100 Bloor Street West
Suite 16
Toronto, Canada M6H 1M8
Please mention in your accompanying note whether you wish 5.25" or
3.5" diskette format, and state the name in which you wish
registration-only utilities to be registered.
Do not send cheques.
Enquiries may be placed by writing directly to the author via
Easyplex at Compuserve [73230,2620].
Warranty and Disclaimer:
-----------------------
The author, Bob Eyer, guarantees the physical integrity of the
diskette covering the points above, and will replace free of
charge, if it is received defective. However, in no case will the
author be responsible for any damages due to loss of data or any
other reason. In no event does the author's liability for any
damages exceed the price paid for the buyer's order of this
software, regardless of the form of the claim. The person using
the software bears all risk as to the quality and performance of
the software.
DESCRIPTION OF PROGRAMS YOU WILL RECEIVE FREE WITH YOUR REGISTRATION
********************************************************
Many of the programs in the following list have not been publicly
posted, and those which have been posted previously are unlikely
to be posted in new updates, except in rare cases.
Certain programs are registered-only, which means that the user
must not post copies on bulletin boards. Some of these have also
never been posted at all, and are available ONLY to registered
users.
Versions new since last public post are indicated with a + sign.
Entries marked by double asterisk have never been posted, and are
available only to registered users, copies which will contain the
user's name on the copy.
Nearly all file-processing programs take full advantage of
wildcard logic, including DOS shortcuts, keeping keystrokes to
absolute minimum.
Total size in compressed form for all of below, including docs:
about 320K.
** MG 3.0
------
Moving average ASCII graphing program. Especially designed for
obtaining graphic updates on stock-market activity in practical
trading environments, in which it is essential that the user get a
quick graph immediately, with points of the graph directly
associated with the numerical and other text information which
these points represent (a feat impractical in Lotus graphics).
Designed to be used with SETV below.
+ SPC 5.4
-------
Multidrive columnar drive report, with fairly complete description
of your machine including communications, important chips,
printer, BIOS, memory, processor and coprocessor speed,
multitasking, networking, and so on, all in one single snapshot.
New version doubles the amount of information on each
communications port and displays the information in columnar mode
above the drive report, adds an environment usage readout as well
as a new P parameter to pause the PRINT multiplexer, when it is
used to feed data to your printer. (DOS PRINT lacks a pause
command).
SETV 2.0
--------
Sets seven VGA text video modes. Enables Multisync or VGA user to
make use of seven major video text modes at DOS level, including
132 column modes.
HOST 2.2
--------
Provides a simple BBS host for occasional use. Fully
configurable, but capable of being run 'right out of the box',
HOST provides ringback, file transfer, mail, chat, userlog, shell,
and much more - in an executable only 27K in size.
AL 2.3
------
Best and most flexible TSR alarm program with clock option. Has
time-locking and a full range of options. 7K of memory.
CA 2.2
------
Four-function fixed point TSR calculator with formatted displays
and scientific notation for direct paste to text. Also has
accumulator. Four mode groups. About 13K of memory.
+ CAF 2.2
-------
TSR floating point calculator with formatted displays and direct
paste to text. 18 functions, and an accumulation area. Five
types of modes. Number formatting. CAF is the most sophisticated
calculator in the business, for its size. 27K of memory.
PAUZ 2.2
--------
Replacement for DOS PAUSE, allows specification of seconds to wait
or target [<=] time, as well as what key to use for pause
interruption. User triggering of error levels 1 to 9.
+ MV 2.6
------
Fast file mover. Preserves date/time/attribute stamp for all
moves. Allows moving Read Only and Hidden files, source files
opened in SHAREd mode for network users. Wildcards. None
faster or safer.
** SPLT 2.1
--------
ASCII file splitter which, for the first time, offers the ability
to prevent the split from resulting in split messages or other
defined text blocks. Works with DIV and REV, below.
** OTL 3.0
-------
Makes it possible to apply any set of operations, say, as
specified in a batch file, to every file in an ASCII list, without
having to specify the path information for each file. For Sysops.
** KALL 2.0
--------
For users of DOS 3.0-3.2 who would like batch file control like
that offered in the more advanced DOS versions. Allows
redirection of batch file output, unlike DOS 4/5 CALL.
** SS 1.0
------
Secure shell, protects your system from keyboard redefinition
resulting from ANSI codes read in remote message areas. Maintains
default DOS colour scheme, but requires use of NANSI.SYS.
DIV 3.2
-------
Generalisation of FGREP-type programs to include blocks of text.
A single string defines a block in most kinds of blockable text.
DIV handles almost any kind. Returns blocks containing one or
more of up to 64 different strings from large ASCII files. Useful
in extracting messages or extended file descriptions containing a
range of strings without manual cut and paste. Can prepare a file
containing every block EXCEPT the ones selection, and
simultaneously. See REV in short list below.
COMB 2.2
--------
Sorts and combines wildcard text files in specified order into
first file found in that order. Primarily for eliminating the
tedium and error involved in accumulating message files into one
file for easy reference. Essential for systematic followers of
international correspondence forums.
ADD 2.4
-------
Adds very lengthy columns of numbers found in ASCII text, such as
byte counts in BBS listings without manual data entry. (Capable
of handling the addition of up to 1 billion numbers in one pass).
CITM 2.4
--------
Counts similar items in formatted ASCII lists, where the
similarity is based on a fixed string field found at one position
in each line of text, and all lines have been previously sorted,
based on the contents of that string field. Perfect as a
companion utility for Baker's QSORT.
+ FVER 2.0
--------
Compares a file list, like a BBS listing, to the actual files
found anywhere in the BBS's download path. Operates in FAST or
SLOW mode, depending on your safety requirements. Can be operated
remotely through a BBS door.
+ MVA 2.0
-------
Moves files, even if set to read only status, from anywhere in a
specified download path to a given location. Operates directly on
ASCII lists, like directories or BBS listings. Can be operated
remotely through a BBS door.
RNF 2.1
-------
Minimises keystrokes and keystroke error on renaming files with
date or time info or special flags.
plus:
----
+ LF - Linefeeds printer by user-supplied number of lines.
+ PF - Pagefeeds printer by user-supplied number of pages.
+ DOSV - Writes out major element of DOS version as error level.
+ RING - TSR ring detector for users who don't like phone rings.
+ PORT - TSR/non-TSR display of modem statistics for specific port.
ELIM - Advanced replacement for DEL.
+ EMS - EMS detector for error level control in batch files.
LCNT - Very fast linecounter; formatted output.
ESRT - Element sorter. User specified delimiter.
+ TYME - Program execution timer.
CHG - Attribute file/directory/date/time file changer/reader.
+ CBRO - Compuserve Browse converter. Old/new formats.
REV - Reverses order of blocks of text (messages, etc).
DTR - Toggles modem DTR line.
RTS - Toggles RTS line.
** CFIX - Fix cursor to normal, block or off.
** EL - Converts number to error level, for batch files.
WD - Gives wildcard support to any program.
SWP - Fast single-level sweep program.
TSTF - Floppy disk status tester.
----------------------
End of documentation